1. Field
This invention is related to data synchronization, database clustering and database disaster recovery in networked computing systems. The invention is based on database transaction level signaling. More specifically, the invention relates to database synchronization, replication and clustering by using statement level signaling and database triggers to embed a synchronization layer into the databases in the cluster so that the layer and the database become an integral part. The signaling process is implemented in database DML triggers. However, this limitation does not apply to database vendors and it can be implemented in any layer where it is deemed appropriate in their databases and make it cleaner.
2. Prior Art
Data replication is the process of maintaining multiple copies of a database object in a distributed database system. IT industries widely use the one-way replication to maintain multiple database copies to increase the system read capacity and offload the load of the primary database. However, this does not help in increasing the update capacity. Moreover, IT industries often face disaster problems and they usually have to buy services from companies such as SunGard Inc. to protect their data and the services that they purchase can not be effectively utilized since disasters nearly never happens. Even if it happens, it usually takes hours, even days, for the system to come up with limited capacity and certain data loss.
Conventional clustering technologies such as Oracle Real Application cluster, in which multiple instances share the same physical storage, have significant performance problem when dealing updates. Their intrinsic waits on cache transfer are the performance killer and prevent update transactions from scaling out. The conventional cluster cannot prevent disaster from happening due to their use of shared storages either. So these database clustering technologies all have their own performance drawbacks and cannot survive disaster failures without data loss.
U.S. Pat. No. 7,143,123 to Tom, Richard (2006) disclosed a process that would do the synchronization among multiple databases, but it needs to implement multiple external log reader agents and distribution agents to harvest and distribute transactional data. Its transaction tagging method is not very efficient. The implementation would not only be complicated, but also be expensive to deploy. It may also incur performance problem due to its use of many external agents. Due to the fact that its trigger based method has to store the transaction in the harvest agents, the process could not utilize the two-phase commit or equivalent feature of existing database technologies, it may not be able to guarantee read consistency. This implies that it could not guarantee the data consistency if updates are allowed on more than one database in its replication group.
Therefore, there is a need for a straightforward and cost-effective way to implement synchronous/real-time database synchronization system that would not only increase the read capacity, but also eliminate cache transfer waits in existing database cluster technology and increase the update capacity and at the same time provide database disaster protection without data loss and downtime.